package com.hspedu.sort;

import java.util.Arrays;

/**
 * @author Charlie
 * @version 1.0
 * @date 28/5/2025 下午2:31
 */
public class ShellSort {
    public static void main(String[] args) {
        int[] arr = {8, 9, 1, 7, 2, 3, 5, 4, 6, 0};
        shellSort(arr);

    }

    public static void shellSort(int[] arr) {
        for (int gap = arr.length / 2; gap > 0; gap /= 2) {
            //从gap个元素开始，逐个跟后面index+gap
            for (int i = gap; i < arr.length; i++) {

                int j = i;
                int intInsetValue = arr[j];

                if (arr[j] < arr[j - gap]) {
                    while (j - gap >= 0 && intInsetValue < arr[j - gap]) {
                        arr[j] = arr[j - gap];
                        j -= gap;
                    }
                    arr[j] = intInsetValue;


                }


            }

        }
        System.out.println(Arrays.toString(arr));


      /* //第一轮排序
        for(int i=5; i<arr.length; i ++){
            for(int j=i-5; j>=0; j-=5){
                if(arr[j]>arr[j+5]){

                }

            }

        }*/
    }

    public static void shellSortTest(int[]arr){
        //第一轮 分为5组

        for(int i= 5; i< arr.length; i++){
            int j = 5; //假设插入位置
            int insertValue= arr[5];

            if(arr[5]<arr[j-5]){
                while (j-5>=0 && insertValue<arr[j-5]) {
                    arr[j] = arr[j - 5];
                    j -= 5;
                }




                }
            }


        }


    }


